<?php

$page_width = 56;
$page_format = 1/sqrt(2);
//$page_format = 4/3;
$delta = 7;
$inner_margin  = $page_width / $delta;
$exter_margin  = 2*$page_width / $delta;
$top_margin    = $page_width*$page_format / $delta;
$bottom_margin = 2*$page_width*$page_format / $delta;

$leftPage = true;

$LM = round($leftPage ? $exter_margin : $inner_margin, 3);
$RM = round($leftPage ? $inner_margin : $exter_margin, 3);
$TM = round($top_margin, 3);
$BM = round($bottom_margin, 3);



?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/TR/xhtml1/strict">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>D. Philonov</title>
    <link rel="stylesheet" href="style/main.css" />
    <style>
html,
body,
#page-all {
    height: 100%;
    min-height: 100%;
    margin: 0em;
    padding: 0em;
}
table.clear {
    margin: 0em;
    padding: 0em;
    border-collapse: collapse;
}
tr.clear,
td.clear {
    margin: 0em;
    padding: 0em;
}
#page-all {
    margin-bottom: -3em;
}
#page-footer,
#page-empty {
    margin: 0em;
    padding: 0em;
    height: 3em;
    overflow: hidden;
}
.container4float {
    position: relative;
    overflow: hidden;
}
#page-footer {
    margin-top: -3em;
}
#page-empty {
    clear: both;
}
a:link {
    color: #0055CC;
}
a:visited {
    color: #990099;
}
a:hover,
a:active {
    color: #CC0000;
}
table.clear,
tr.clear,
td.clear {
    vertical-align: top;
    border: 0px solid black;
    margin: 0em;
    padding: 0em;
}
/*============================================*/

#content {
}
#page-footer-w {
}
#page-all {
}/*
#middle-w {
    background-position: left bottom;
    background-repeat: repeat-x;
    background-image: url(../img/bg-bottom.png);
    padding-left: 32%;
}
#middle {
    height: 180px;
    width: 390px;
    background-position: left bottom;
    background-repeat: no-repeat;
    background-image: url(../img/bg-bottom-image.png);
}*/
img {
    border: 0px solid;
}
#leftbar {
}
#leftbar img {
    margin-left: -40px;
}
#page-footer {
}
#page-footer-left,
#page-footer-right {
    color: #777777;
}
#page-footer-right {
    margin-left: 8em;
}

/*==================================*/


dl, ul {
    width: 30em;
    margin-top: 0em;
    margin-bottom: 1.5em;
}
dd {
    margin-bottom: 1em;
    text-indent: 0em;
    margin-left: 1.4em;
}
dt {
    text-indent: 0em;
}
h2 {
    margin-top: 0.2em;
    margin-bottom: 0.7em;
}
h3 {
    margin-top: 0.2em;
    margin-bottom: 0.6em;
}
li {
    margin: 0em;
    margin-bottom: 0.2em;
    padding: 0em;
    list-style: none;
}
.nw {
    white-space: nowrap;
}

h1 {
    white-space: nowrap;
    font-weight: normal;
    font-size: 1.42em;
    color: #667667;
}
.mr {
    margin-right: -0.162em;
}
#header-wrapper {
    margin-bottom: 4em;
    background-color: #FBEDDA;
}
h1, h3, h4, h5, h6, p {
    margin-left: 0em;
    margin-right: 0em;
}
h2 {
    margin-left: 1.3em;
    margin-right: 1em;
}
h1 .title-prefix {
    color: #CCCCCC;
    letter-spacing: 0.2em;
    white-space: nowrap;
}
h2.drafts .drafts {
    font-family: 'Calibri', sans-serif;
    font-size: 1.5em;
    white-space: nowrap;
    display: block;
    font-style: italic;
    font-weight: normal;
    margin-bottom: 0.2em;
}
h2.drafts .and {
    font-family: 'Consolas', monospace;
    font-size: 1.1em;
    white-space: nowrap;
    display: block;
    margin-left: 5em;
}
h2.drafts .ingot {
    font-family: 'Cambri', serif;
    text-transform: uppercase;
    font-size: 1.2em;
    white-space: nowrap;
    display: block;
    margin-left: 7em;
    letter-spacing: 0.2em;
}
body {
    background-color: #608758;
    font-family: Calibri, Arial, sans-serif;
    font-size: 17px;
    line-height: 1.2em;
    word-spacing: 0em;
    letter-spacing: -0.02em;
}
h3 {
    font-family: Cambri, serif;
    font-size: 1.73em;
    font-weight: normal;
    margin: 0em;
    line-height: 1.2em;
    margin-bottom: 0.5em;
}
ul, li {
    margin: 0em;
    padding: 0em;
}
p {
    margin-bottom: 1.2em;
}
ul {
    margin-top: 0.4em;
    margin-bottom: 0.4em;
}
li {
    margin-left: 2em;
}
#contentbar {
}
#content {
    width: <?php echo $page_width;?>em;
    background-color: #FFFFFF;
}
#page {
    padding: <?php echo $TM;?>em <?php echo $RM;?>em <?php echo $BM;?>em <?php echo $LM;?>em;
    color: #333333;
}
#page-bg {
    padding: 0em;
}
acronym {
    background-color: #FBF4DA;
    padding: 0em 0.2em;
    color: #000000;
    border: none;
    text-decoration: none;
    font-style: normal;
}
.no-bm {
    margin-bottom: 0em;
}
.no-tm {
    margin-top: 0em;
}
.date {
    text-align: right;
    color: #999999;
    font-style: italic;
    font-size: 1em;
    margin-top: 4em;
    margin-right: 4em;
}
#page-all {
    width: auto;
}
#leftbar {
    width: 10%;
}
#rightbar {
    width: 20%;
}
#content {
    width: <?php echo $page_width;?>em;
}
.remark {
	float: left; 
	clear: left; 
	margin-left: -<?php echo $LM;?>em; 
	width: <?php echo $LM - $LM/6;?>em; 
	font-size: 0.82em; 
	color: #777777;
}
#sendMail,
h1 {
    text-align: left;
    color: #999999;
    font-style: italic;
    font-size: 1em;
    margin: -2em 0em 0em 0em;
    padding: 0em;
    text-decoration: none;
}

</style>

</head>
<body>
    <table id="page-all" class="clear" id="page-all" border="0" cellpadding="0" cellspacing="0">
    <tr class="clear">
        <td id="leftbar" class="clear">
        </td>
        <td id="contentbar" class="clear">
            <div id="content">
            <div id="page">
            <div id="page-bg">

<!--=====================================================================================================-->
<!--=====================================================================================================-->
<!--=====================================================================================================-->
<!--=====================================================================================================-->
<!--
<p>
<ul>
    <li><a href="http://code.google.com/intl/ru/appengine/docs/quotas.html">Квоты</a></li>
    <li><a href="http://docs.python.org/">Python docs</a></li>
</ul>
</p>-->
<h1>Сайт статей <a id="sendMail" href="mailto:denis@philonov.com" title="«Отправить мыло»">Дениса Филонова</a></h1>
<hr/>
<br/>

<h3>Объектный язык</h3>
<p class="no-bm">Объектный язык (это может быть любой формальный язык, но мы будем рассматривать тут сугобо
языки программирования), это формальный язык описания процесса, в основе которого лежит представление
предметной области в виде множества взаимосвязанных объектов. Т. е. такой язык должен включать,
как минимум:</p>
<ul class="">
    <li>— непустое множество обектов (будем говорить о множестве объектов среды выполнения)</li>
    <li>— средства выделения из общего множества нужных в конкретный момент и конкретном случае объектов.</li>
</ul>
<div class="remark">

<p>И так, у нас есть объекты, среда выполнения (внешний мир) и модель поведения (программа — внутренний мир).
Всё это нуждается в описании на некотором обобщенном формализированном языке-скелете, языке-фундаменте.</p>

</div>
<p class="no-bm no-tm">Таким образом, язык должен обладать возможностями из следующего списка:</p>
<ul class="">
    <li>— механизм указания объектов (литералы)</li>
    <li>— механизм добавления объектов в множество</li>
    <li>— механизм указания на объект в множестве</li>
    <li>— механизм извлечения объекта из множества</li>
</ul>
<p class="no-tm">Тут есть ряд важных вопросов, требующих рассуждения. Дело в том, что язык программирования (в месте с
компилятором/транслятором), как известно, нужен для создания готовых к выполнению программ для конкретной
среды выполнения. Т. е. сам текст, написанный на языке программирования программой не является — он является
описанием некоторой модели поведения некоторых объектов в рамках определённой среды выполнения. Последняя,
что замечательно, и важно для понимания, не обязательно является статической.
</p>
<p>И так, у нас есть объекты, среда выполнения (внешний мир) и модель поведения (программа — внутренний мир).
Всё это нуждается в описании на некотором обобщенном формализированном языке-скелете, языке-фундаменте.</p>
<p>Можно сказать, что для сборки (компиляции) программы необходимо полностью определить три множества:
<ul>
    <li>— объектов</li>
    <li>— процессов внешней системы</li>
    <li>— процессов внутренней системы</li>
</ul>
</p>
<p>В современной мире обработки информаци фундаментальным фрагментом информации является бит, обладающий
только двумя состояниями. Все остальные «информации» (обозначим их <code>A<sub>i</sub></code>)
производны от него и задаются значением (<code>A<sub>i</sub>.value</code>, множеством, часто
взаимосвязанным, состояний битов) и «метаинформацией» (<code>A<sub>i</sub>.type</code>) — информацией об
устройстве другой  информации (<code>A<sub>i</sub>.value</code>).</p>
<p>В языках программирования для указания информации типа <code>A<sub>i</sub>.value</code> используют
<acronym title="Терминальный литерал">терминальные литералы</acronym>, а для указания информации типа
<code>A<sub>i</sub>.type</code> — <acronym title="Декларация типа">декларации типа</acronym>.</p>
<div class="remark">
<p>Транзакции могут быть вложенными и в каждой из транзакций/подтранзакций доступна операция отмены.</p>

</div>

<p>Окружение программы обладает свойством реакции на любое воздействие со стороны программы.
Таким образом, есть опасность безвозвратного изменение состояния внешней среды. Такие операции должны
получить отдельное внимание. Вообще, для выполнения подобных операций необходим специальный механизм,
упрощающий понимание влияния программы на среду. <acronym>Механизм транзакций</acronym>.</p>
<p>Если есть необходимость выполнить необратимую операцию среды и эта операция является следствием анализа
(т. е. основывается на результатах предыдущих операций) и/или причиной обязательных последующих
взаимодействий со средой, нужно быть предельно аккуратным и
продумать всю цепочку взаимодействия, оформив её отдельно, в транзакцию. Механизм транзакций позволяет
в некоторой степени (при некоторых условиях) сэмулировать внешнюю среду вместе с её реальным поведением, для
проведения некоторой последовательности действий, и при успешном завершении оных — провести всё это в
реальных условиях «одним махом».</p>
<p>Транзакции могут быть вложенными и в каждой из транзакций/подтранзакций доступна операция отмены.</p>

<div class="date">Ноябырь, 2009 год.</div>

<!--=====================================================================================================-->
<!--=====================================================================================================-->
<!--=====================================================================================================-->
<!--=====================================================================================================-->

            </div>
            </div>
            </div>
        </td>
        <td id="rightbar" class="clear">
        </td>
    </tr>
    <tr>
        <td id="middle-w" class="clear" colspan="3" valign="bottom">
                <div id="middle"></div>
        </td>
    </tr>
    <tr>
        <td id="td-page-empty" class="clear" colspan="3">
            <div id="page-empty"><span>&nbsp;</span></div>
        </td>
    </tr>
    </table>
    <div id="page-footer">
        <div id="page-footer-w">



                <table class="clear" border="0" cellpadding="0" cellspacing="0">
                <tr class="clear">
                    <td class="clear">
                        <div id="page-footer-left" class="nw">
                            Ящик: <a href="mailto:denis@philonov.com" title="«Отправить мыло»">denis@philonov.com</a>
                        </div>
                    </td>
                    <td class="clear">
                        <div id="page-footer-right" class="nw">
                            D. Philonov © 2009
                        </div>
                    </td>
                </tr>
                </table>



        </div>
    </div>


</body>
</html>